home *** CD-ROM | disk | FTP | other *** search
-
-
- /* MINFO.C Mouse information demo program*/
- /* Version 1.00 03-Mar-90 for Microsoft C 5.1 or QuickC 2.01 */
- /* by Bill Byrom = Applications Engineer = Tektronix Dallas TX */
-
- /* MINFO displays information about the current mouse driver to
- stdout, and returns an exit code corresponding to the COM port
- number used. The mouse_info() function is used to interrogate
- the mouse driver via INT 33H Function 24H (Get Mouse
- Information). This function works with Microsoft MOUSE.COM
- drivers currently available, but may fail with other drivers or
- old versions of MOUSE.COM (tested with version 6.24).
-
- int mouse_info( int *major_version, int *minor_version,
- int *mouse_type, int *mouse_irq );
-
- RETURN VALUE: COM port number associated with interrupt vector
- used by mouse driver. IRQ4 gives COM1, while IRQ3 gives COM2.
- If interrupt is other than IRQ4 or IRQ3, 0 is returned.
-
- The driver version number is returned in major_version (decimal)
- and minor_version (hex). The type of mouse is returned as an INT
- in mouse_type (see example below for description of the five
- types). The IRQ number used by the driver is returned in
- mouse_irq (the PS/2 mouse returns 0, while serial mice normally
- return 3 or 4). If the mouse driver is not loaded, all returned
- values are 0. */
-
- #include <dos.h>
- #include <stdio.h>
-
- int main(void);
- int mouse_info( int *major_version, int *minor_version,
- int *mouse_type, int *mouse_irq );
-
- int main()
- {
- int portnum, major, minor, type, irqnum;
- char *TypeMsg;
-
- portnum = mouse_info( &major, &minor, &type, &irqnum );
- switch( type )
- {
- case 1: TypeMsg = "Bus"; break;
- case 2: TypeMsg = "Serial"; break;
- case 3: TypeMsg = "InPort"; break;
- case 4: TypeMsg = "PS/2"; break;
- case 5: TypeMsg = "HP"; break;
- default: TypeMsg = "Unknown";
- }
- if( type > 0 )
- printf ( "Driver Version: %d.%x\n"
- " Mouse Type: %s\n"
- " Interrupt: IRQ%d\n"
- " Port: COM%d\n",
- major, minor, TypeMsg, irqnum, portnum );
- else
- printf( "Mouse driver is not installed or is an old version.\n" );
- return( portnum );
- }
-
- int mouse_info( int *major_version, int *minor_version,
- int *mouse_type, int *mouse_irq )
- {
- union REGS inregs, outregs;
- int com_port;
-
- inregs.x.ax = 0x0024;
- inregs.x.bx = 0x0000;
-
- inregs.x.cx = 0x0000;
- int86( 0x33, &inregs, &outregs );
- *major_version = (int)outregs.h.bh;
- *minor_version = (int)outregs.h.bl;
- *mouse_type = (int)outregs.h.ch;
- *mouse_irq = (int)outregs.h.cl;
- switch( outregs.h.cl )
- {
- case 4: com_port = 1; break;
- case 3: com_port = 2; break;
- default: com_port = 0;
- }
- return( com_port );
- }
-
-
- *********
-
-